package com.zdhr.igms.report.mapper;

import com.zdhr.igms.demain.*;
import com.zdhr.igms.report.dao.ReportDao;
import org.apache.ibatis.annotations.Param;

import java.util.List;

public interface ReportMapper {

    /**
     * 新增报表信息
     * @param reportInfo
     * @return
     */
    int insertReportInfo(ReportInfo reportInfo);

    /**
     * 新增报表数据
     * @param reportData
     * @return
     */
    int insertReportData(ReportData reportData);

    /**
     * 新增报表结果数据
     * @param reportStatistics
     * @return
     */
    int insertReportStatistics(ReportStatistics reportStatistics);

    /**
     * 新增报表线性数据
     * @param reportLineData
     * @return
     */
    int insertReportLineData(ReportLineData reportLineData);

    /**
     * 写入实时数据
     * @param realTimeData
     * @return
     */
    int insertRealTimeData(RealTimeData realTimeData);

    /**
     * 条件查询报表信息
     * @param reportInfo
     * @return
     */
    ReportInfo reportInfoByInfo(ReportInfo reportInfo);

    /**
     * 通过id查询报表数据
     * @param reportData
     * @return
     */
    List<ReportData> reportDataById(ReportData reportData);

    /**
     * 通过id查询报表结果
     * @param reportStatistics
     * @return
     */
    ReportStatistics reportStatisticsById(ReportStatistics reportStatistics);

    /**
     * 通过id查询报表线性数据
     * @param reportLineData
     * @return
     */
    List<ReportLineData> reportLineDataById(ReportLineData reportLineData);

    /**
     * 快速查询实时数据
     * @return
     */
    RealTimeData queryRealTimeDataById(String id);
    /**
     * 查询实时数据
     * @param realTimeData
     * @return
     */
    List<RealTimeData> queryRealTimeDataByObject(RealTimeData realTimeData);
    /**
     * 查询实时数据（分页）
     * @param realTimeData
     * @return
     */
    List<RealTimeData> queryRealTimeDataByObjectPage(@Param("p") PageBean p, @Param("r") RealTimeData realTimeData);

    /**
     * 查询实时数据总条数
     * @param realTimeData
     * @return
     */
    int queryRealTimeDataByObjectReturnCount(RealTimeData realTimeData);
}
